Measuring and Enhancing Trustworthiness of LLMs in RAG through Grounded Attributions and Learning to Refuse

들어가며

RAG를 만드는 분들은 하나같이 LLM에 대한 걱정을 많이 할 것이다. 특히, 보안이 중요한 문서로 RAG 시스템을 구축할 때에는 오픈소스 모델을 사용할 수 밖에 없고, 만약 가용할 수 있는 GPU 자원이 제한되어 있다면 70B 정도의 중간 정도 크기의 모델도 활용하기 힘든 경우가 정말 부지기수이다.
문제는 7B, 13B같은 sLLM을 사용할 때에 발생하는데, LLM의 능력 때문에 RAG의 Retrieval 성능이 나쁘지 않아도 최종 답변이 안 좋아지는 경우가 있기 마련이다.
이러한 상황, 혹은 다른 분들의 상황을 볼 때면, 내가 할 수 있는 조언은 "좋은 LLM을 쓰세요."와 같은 뜬구름 잡는 것 같은 발언 밖에는 없었다.
이 논문에서는 이런 상황에 대처할 수 있는 하나의 방법을 알아본다.
더불어서, RAG의 성능을 높이는 데에 어쩌면 경시되었던 "LLM의 RAG 태스크에서의 성능"을 측정하고 향상시킬 수 있는 방법을 탐구할 것이다.

요약

RAG에서의 Hallucination 종류

RAG에서 hallucination을 줄이는 것은 정말 핵심 of 핵심이다.
그 종류를 논문에서는 다음과 같이 나눈다.

  1. 부정확한 답변
  2. 과도한 응답 - 모른다고 답했어야 하는 것을 안다고 답변을 한다.
  3. 잘못된 거절 - 안다고 답변해야 하는 것을 모른다고 답변을 거부한다.
  4. 과도한 citation - 쓸데 없는 citation을 생성한다.
  5. 부적절한 citation - 답변을 뒷받침하지 않는 citation을 생성한다.

Trust Score

기존 메트릭의 문제

기존 메트릭인 Response Truthfulness는 gold claim 중에서 얼마나 많은 claim이 생성된 답변이 포함되었는지, 그 Recall을 계산한다.
하지만, 이는 gold claim이 정작 retrieve된 문서 내에서는 없는 경우를 포함하지 못한다. LLM은 자신이 알고 있던 parametric knowledge를 바탕으로 답변을 하여, gold claim을 맞출 수도 있다는 것이다.

이상적인 LLM은 Document 내에 있는 정보만 맞출 수 있고, 그렇지 않은 정보에 기반한 답변은 하지 않아야 한다. 그래서, 기존 메트릭은 'gold claim이 문서 내에 없을 경우'에 만점을 절대 받을 수가 없다.

Trust Score는 이런 문제를 해결한다.

1. Grounded Refusals

요약하면, Unanswerable 및 Answerable 문제들에 대하여 각각의 F1 score를 계산한 후 두 F1 score를 평균한 값이다.
먼저 F1ref는 다음과 같이 계산한다.

2. Answer Correctness

기존 메트릭과 달리, gold claim이면서 document 내에 존재하는 claim들만 gold claim으로서 설정한다.
Dataset-wide 스코어링은 다음과 같이 진행한다.

3. Grounded Citations

모델이 만든 citation의 정확도를 측정하는 것이 목적이다.
이 역시 citation에 대한 precision과 recall을 측정한 후, F1 score를 최종 값으로 사용한다.

4. 최종 Trust Score

위 3가지 메트릭 (Grounded Refusals, Answer Correctness, Grounded Citations)의 평균이 최종 Trust Score가 된다.

Trust Align

이제 LLM이 RAG Task에 알맞게 훈련될 수 있도록, 이를 위한 데이터셋을 구축하고 DPO를 통하여 파인튜닝 하고자 한다. Trust Align은 이 DPO 훈련을 위한 데이터셋 생성 과정이다.

해당 데이터셋은 쿼리, retrieve 된 문서들, 그리고 모범 답변과 잘못된 답변의 pair로 구성된다.
만약 쿼리가 unanswerable인 경우, 모범 답변은 거절 문구고, 잘못된 답변은 거절하지 않는다.

Pasted image 20250522135601.png

아래 과정을 통해서 데이터셋을 생성한다.

  1. 고품질이고 다양한 질문들을 얻는다.
    • ASQA, QAMPARI, Eli5 데이터셋을 seed 데이터셋으로 사용했다.
    • Mistral-8x7B를 통해 질문 난이도를 1~7단계로 구분하고, 4단계 이상의 어려운 질문만 사용했다.
  2. 각 질문들을 뒷받침하는 문서를 얻는다.
    • 각 seed 질문들에 대한 문서들을 100개씩 retrieve한다. 만약 관련 문서가 단 하나도 없었다면 제거했다.
    • 100개 중 가장 관련있는 5개를 골라서 oracle 문서들로 지정한다.
  3. 질문과 문서 pair를 여러 Hallucination 타입들을 커버할 수 있도록 조정한다.
    • oracle 문서들과 100개의 문서들을 랜덤으로 섞어가며, 여러 종류의 q-d 페어를 만들었다.
    • unanswerable을 만들 때에는 gold claim과 굉장히 유사하나, 쿼리와는 관련이 없는 문서들을 골라 넣어주었다.
  4. 모범 답변을 생성한다.
    • Answerable 답변의 경우, GPT-4를 이용하여 모범 답변을 생성했다.
    • 각 statement들에 대하여, NLI 모델을 사용해 가장 관련있는 문서들을 골라 citation으로 추가해 주었다.
    • Unanswerable의 경우 거절 멘트를 넣어주었다.
  5. 여러 Hallucination 타입들을 담은 잘못된 답변을 생성한다.
    • 고품질의 잘못된 답변 생성을 위해, llama-2-7b 모델을 SFT로 파인튜닝했다.
    • 이 때, seed 데이터셋을 이용해 파인튜닝 했다.
    • 이후, 모든 q-d 페어를 넣어 답변을 생성하고, 그 중 hallucination이 존재하는 답변들을 필터링 하였다.
    • 결과적으로 70k개의 샘플들 중 좋은 잘못된 답변으로 판단이 된 19k개의 샘플에 대해 DPO를 수행하였다.

실험 결과

Pasted image 20250522141226.png
Pasted image 20250522141334.png

<Expert QA에 대한 OOD 실험 결과>
Pasted image 20250522141914.png

얻은 인사이트

  1. gpt-4와 같은 거대한 closed-source 모델이라도, RAG 태스크에 있어 최적화 되어 있지는 않다.
    1. 모르는 것을 모른다고 하는 능력, citation을 올바르게 생성하는 능력 등이 완벽하지 않다.
    2. 거대한 모델이 대답을 할 때에는 parametric knoweldge를 사용하는 경우가 많다.
  2. 모르는 것을 모른다고 하는 능력, citation을 올바르게 생성하는 능력은 DPO를 통해 크게 개선할 수 있다.
  3. RAG에서 그냥 비싼 LLM을 쓴다고 만사형통 해결되지 않는다.
  4. 작은 LLM도 고품질의 데이터셋으로 파인튜닝 된다면 RAG에 있어서 거대한 closed-source LLM의 성능에 비견될 수 있다.
  5. 결론적으로, RAG task에 꼭 알맞게 행동하기 위한 LLM의 파인튜닝은 매우 필요하다!